MySQL IF THEN 在 WHERE 子句中
全部标签 我有下表Id|Userdefined01------------------------1|1,2,4,52|2,53|4,6,84|1,5我想编写一个查询来查找userdefined01字段中所有值为2和5的ID。这可能吗? 最佳答案 使用FIND_IN_SET()--mysql的内置函数来搜索CSV中的字符串。SELECT*FROMtableNameWHEREFIND_IN_SET('2',Userdefined01)>0ANDFIND_IN_SET('5',Userdefined01)>0SQLFiddleDemoMySQLF
我正在尝试创建一个显示所有评论的博客,并且用户将能够在回复之前发布的评论时发表评论notoorder然后在sql查询中,这样它们就会按顺序显示,我一直收到错误。SELECTc.userid,c.comment,c.reply,u.username,c.createdat,c.image,c.usernameasComUserFROMBundle:CommentscLEFTJOINBundle:UsersuWITHc.userid=u.idWHEREc.articleid=1ORDERBY(CASEWHEN(c.parentid=0)THENc.idELSEc.parentidEND)c
我目前使用类似下面的mysql语句来搜索帖子标题。从标题为%search_term%的表中选择*但问题是,如果标题是这样的:Acmelaunchs5poundburger并且用户搜索Acme,它将返回一个结果。但是,如果用户搜索Acmeburger或Acme5pound,它将不会返回任何内容。有没有办法让它在用户搜索多个词时返回结果?LIKE在这里使用是正确的还是有其他可以使用的东西? 最佳答案 您可以使用REGEXP来匹配搜索字符串中的任何单词:select*fromtblwheretitleREGEXPCONCAT('[[::]
+------+------+|id|no|+------+------+|1|1||11|1||21|1|+------+------+我想更新第2行号。到2。我可以使用的查询是updatetestsetno=2whereid=11;如果没有where子句,我怎样才能达到同样的效果?? 最佳答案 我不确定为什么你会想要但是......UPDATE`test`SET`no`=IF(`id`=11,1,`no`);郑重声明,如果这没有表现得很糟糕,我会感到惊讶,因为它会遍历表格中的每一行。
看来我不能在WHERE子句中使用计算值?SELECTid,TIMESTAMPDIFF(YEAR,dateOfBirth,CURDATE())ASageFROMuserWHEREage>=20我收到ERROR1054(42S22):Unknowncolumn'age'in'whereclause'。一种可能的解决方法是使用子查询,但它过于复杂? 最佳答案 您可以在WHERE子句中使用计算值,但不能使用其别名。你必须再次输入整个表达式WHERETIMESTAMPDIFF(YEAR,dateOfBirth,CURDATE())>=20An
所以我选择了一个名称和与该名称相关的一些运动,我只需要在该运动数大于1时选择它们。SELECTDISTINCTnameASFullName,(SELECTCOUNT(id)FROMcoachesWHEREcoaches.name=FullName)ASNrOfSportsFROMcoachesWHERENrOfSports>1如果WHERE被删除,查询工作正常并显示所有行,其中有些行只有“1”作为NrOfSports。当我将它添加到WHERE子句时,我收到一个错误,因为它无法被识别。这让我感到困惑,因为如果我在另一个SELECT列中使用它,它会正常工作。有没有办法做到这一点?它不能依赖
我想做什么我试图通过询问type=x和target=x来获取commentId,通常(THISISAEXAMPLE),表的结构应该是这样的:+-----------+-------+--------+|commentId|type|target|+-----------+-------+--------+|1|post|2||2|post|8||3|video|6|+-----------+-------+--------+在这种情况下,我可以使用此查询来获取commentId:SELECT`commentId`FROM`comment_datas`WHEREtype='post'AN
如果我在左连接中添加一个where子句,这个where子句在右表上工作,我只会从左表中获得可以匹配右表的结果。$notifications=\DB::table('notifications')->select(\DB::raw("notifications.uuid,images.local_pathastitle_image"))->leftJoin('images','images.owner_uuid','=','notifications.uuid')where('images.relation','=','notification_title');我怎样才能将这个where
考虑这个MySQL查询:SELECTsomeColumnsFROMsomeTableWHEREsomeColumnIN(value1,value2,value3)...我如何保证行集按照IN()子句的值的准确顺序排列出来?我认为如果不给它一个ORDERBY子句就不能保证这一点,是吗?附言:IN()子句的值将是由PHP(利用ZendFramework的select语句)按以下方式传递给查询的任意数据数组:->where('someColumnin(?)',$theArrayWithValues); 最佳答案 在ORDERBY中使用CA
我有2个MySQL表,如下例所示:汽车IdCARNAMEAGE1Ford2years2AUDI1years3Ford2years选项Idid_caroption11ESP22ABS33ABS43ESP我需要选择所有拥有ABS和ESP的2年车龄。所以它应该在这个例子中返回:3Ford 最佳答案 groupby/having将确保汽车具有所需的两个功能。selectc.id,c.namefromcarscinnerjoinoptionsoonc.id=o.id_carando.optionin('ABS','ESP')wherec.ag